記載内容から判断すると、呼び出されるAcrivity側でGET_TASKSが
必要なメソッドを呼び出しているだけのように読めるんですけど、
本当に「無駄なパーミッション」なんでしょうか?
こんにちはfkmです。
startActivity()に渡しているIntentを組み立てている部分のコードは
どのようになっていますか?
fkm様
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
となっております。
このアプリがタスク切り替えアプリ(呼び出し先は別タスクのActivity?)とかなら
GET_TASKSが必要なパーミッションのような気がしますが、そうでないなら、
Intent.FLAG_ACTIVITY_NEW_TASK の指定が漏れているんじゃないでしょうか。
MORIHIRO様
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
となっておりフラグの設定は行っております。
Activityの起動構成をもう一度確認してみます。
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RecentTaskInfo> recentTaskList;
recentTaskList = am.getRecentTasks(16, 0);
--
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
と前回の追記のコードからfinish()を消してもGET_TASKを要求されてしまいます。
同じActivityスタックで実行されているのでGET_TASKSが必要な理由がまだ分かっておりません。
ご意見ありがとうございました。今後の参考にさせていただきます。
YAMAZAKI様
返信ありがとうございます。
最小構成がこちらです。
public class TestActivity extends Activity {
Button login;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.login_activity);
login=(Button)findViewById(R.id.login);
}
public void onResume(){
super.onResume();
login.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO 自動生成されたメソッド・スタブ
Intent intent=new Intent(LoginActivity.this,Setting.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
});
}
public void onPause(){
super.onPause();
}
}
宜しくお願い致します。