余分な機能をナビゲートするためにTabHostといくつかのタブを追加してアプリケーションを拡張しようとしています。現在のアプリは基本的にデータベースを検索します。現在のアプリケーションのワークフロー: タブを使用してアクティビティエラーを開始できません
- アプリケーション負荷
- ユーザログは、検索フォームや入力データを取得し
- 検索結果のリストの活動をロードし、「検索」を押します。 ..
新しいタブでは、検索用に別のタブがあります。すべてのseachアクティビティをそのタブグループ内に残しておきたい。だから私は、これらのすべてを処理するための活動グループを作成しました:
public class searchGroup extends ActivityGroup {
public static searchGroup group;
private ArrayList<View> history;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.history = new ArrayList<View>();
group = this;
View view = getLocalActivityManager().startActivity("search", new Intent(this,search.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
replaceView(view);
}
public void replaceView(View v) {
history.add(v);
setContentView(v);
}
public void back() {
if(history.size() > 0) {
history.remove(history.size()-1);
setContentView(history.get(history.size()-1));
}else {
finish();
}
}
@Override
public void onBackPressed() {
searchGroup.group.back();
return;
}
}
私の検索アクティビティの検索ボタンonClickListenerで:私はクラッシュを取得する場所
view = searchGroup.group.getLocalActivityManager().startActivity("search_results",new Intent(search.this, search_results.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
searchGroup.group.replaceView(view);
これは、次のとおりです。
02-11 13:43:49.481:E/AndroidRuntime(1165):java.lang.RuntimeException:アクティビティを開始できません ComponentInfo {com.myApp/com.myApp.search_results}: android.view.WindowManager $ BadToke nException:ウィンドウを追加できません - トークン[email protected]は です。あなたの活動は実行されていますか?しかし
、私はsearch_result活動ののonCreateから行コメントを解除した場合:
new LoadSearches().execute();
ノークラッシュが、私は明らかに何を取得。 LoadSearches()はAsyncTaskであり、サーバーに行き、検索文字列を実行し、返されたデータをonPostExecute()のListActivityに入力するという重い作業を行います。
ここではなぜクラッシュするのか分かりませんが、通常はアクティビティを切り替えると理解できません。これにどのように取り組むべきですか?より良い方法がありますか?私は断片について少しは読んだが、まだ何もしていない。
私もこのエラーが発生しています –